#include "system_service.h"

int fd_pipe[2] = {0, 0};   //创建无名管道,用于从mplayer读取命令
int fd_fifo;         //有名管道文件描述符

// 创建有名管道
int create_fifo() {
    if (access(FIFO_NAME, 0) < 0) {   //先判断有名管道文件是否存在,不存在需要先创建
        fd_fifo = mkfifo(FIFO_NAME, 0666);
        if (-1 == fd_fifo) {
            if (errno != EEXIST) {
                perror("mkfifo");
                return - 1;
            }
        }
    }
    return 0;
}

// 创建无名管道
int create_pipe() {
    int retval;
    retval = pipe(fd_pipe);  // 获取管道，往数组中写入两个文件描述符，0是读取，1是写入
    if (retval == -1) {
        perror("打开管道失败");
        exit(1);
    }
    return 0;
}

// 向有名管道发送信息
void send_cmd(char *cmd) {
    //printf("send command\n");
    ssize_t count = 0;
    char cmd_buf[100];
    memset(cmd_buf, 0, sizeof(cmd_buf));
    sprintf(cmd_buf, "%s\n", cmd);
    count = write(fd_fifo, cmd_buf, strlen(cmd_buf));
    if (count != strlen(cmd_buf))
        printf("write error\n");
}